using CLELCore;

namespace CLELCore.Executable
{
	public class PEHeader
	{
		public const int PEHEADER_SIZE = 0x14;

		private short _machinetype;
		private short _numberofsections;
		private int _timedatestamp;
		private int _pointertosymboltable;
		private int _numberofsymbols;
		private short _optionalheadersize;
		private short _characteristics;
		
		public short MachineType
		{
			get
			{
				return _machinetype;
			}
			set
			{
				_machinetype = value;
			}
		}
		public short NumberOfSections
		{
			get
			{
				return _numberofsections;
			}
			set
			{
				_numberofsections = value;
			}
		}
		public int TimeDateStamp
		{
			get
			{
				return _timedatestamp;
			}
			set
			{
				_timedatestamp = value;
			}
		}
		public int PointerToSymbolTable
		{
			get
			{
				return _pointertosymboltable;
			}
			set
			{
				_pointertosymboltable = value;
			}
		}
		public int NumberOfSymbols
		{
			get
			{
				return _numberofsymbols;
			}
			set
			{
				_numberofsymbols = value;
			}
		}
		public short OptionalHeaderSize
		{
			get
			{
				return _optionalheadersize;
			}
			set
			{
				_optionalheadersize = value;
			}
		}
		public short Characteristics
		{
			get
			{
				return _characteristics;
			}
			set
			{
				_characteristics = value;
			}
		}
		
		public PEHeader()
		{
		}
	}
}
